From 174a36257f1118a631a79e53ac295af576203ec0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?utf8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Mon, 4 Sep 2017 14:42:11 +0000 Subject: [PATCH] GDK W32: Plug a resource leak Ensure that surfaces allocated in the impl are destroyed in finalize() https://bugzilla.gnome.org/show_bug.cgi?id=787089 --- gdk/win32/gdkwindow-win32.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 88c18cc71c..24db897265 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -236,6 +236,23 @@ gdk_window_impl_win32_finalize (GObject *object) g_free (window_impl->decorations); + if (window_impl->cache_surface) + { + cairo_surface_t_note_about_to_dereference (window_impl->cache_surface); + cairo_surface_destroy (window_impl->cache_surface); + window_impl->cache_surface = NULL; + } + + if (window_impl->cairo_surface) + { + cairo_surface_t_note_about_to_dereference (window_impl->cairo_surface); + cairo_surface_destroy (window_impl->cairo_surface); + window_impl->cairo_surface = NULL; + } + + g_assert (window_impl->transient_owner == NULL); + g_assert (window_impl->transient_children == NULL); + G_OBJECT_CLASS (parent_class)->finalize (object); } -- 2.30.2